package com.learning.mybatis.mapper.resultmap.mapper;

import com.learning.mybatis.mapper.resultmap.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Map;

/**
 * ClassName: IUserMapping
 * Description:
 * Date: 2020/7/22 9:56 【需求编号】
 *
 * @author Sam Sho
 * @version V1.0.0
 */
@Repository
public interface IUserMapper {

    /**
     * 1. 使用Map存储结果集
     * 可读性比较差，理论上市万能的
     *
     * @param id
     * @return
     */
    Map<String, Object> selectMap(@Param("id") int id);

    /**
     * 2. 使用POJO存储结果集（resultType）
     * 【推荐的方式】，可以使用自动映射，隐式的 ResultMap
     *
     * @param id
     * @return
     */
    User select(@Param("id") int id);

    /**
     * 2. 显示使用 ResultMap
     * 【推荐的方式】
     *
     * @param id
     * @return
     */
    User selectResultMap(@Param("id") int id);

    /**
     * 4. 显示使用 ResultMap
     * 【推荐的方式】
     *
     * @param id
     * @return
     */
    User selectAutoMapping(@Param("id") int id);


}
